package com.rayson.yututu.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.rayson.yututu.model.entity.Picture;
import com.rayson.yututu.model.entity.User;
import com.rayson.yututu.model.req.picture.*;
import com.rayson.yututu.model.vo.PictureVO;
import com.rayson.yututu.model.vo.TagCategoryVO;

import javax.servlet.http.HttpServletRequest;

/**
 * @author wulei
 * @description 针对表【picture(图片)】的数据库操作Service
 * @createDate 2024-12-24 22:16:47
 */
public interface PictureService extends IService<Picture> {

    PictureVO uploadPicture(Object source, PictureUploadReq pictureUploadReq, User loginUser);

    void deletePictureById(String id, HttpServletRequest request);

    void updatePicture(PictureUpdateReq pictureUpdateReq);

    Page<Picture> listPicture(PictureQueryReq queryReq);

    TagCategoryVO getTagCategory();

    Page<PictureVO> listPictureVO(PictureQueryReq queryReq);

    void reviewPicture(PictureReviewReq req, HttpServletRequest request);

    void fillReviewParam(Picture picture, User loginUser);

    Integer getPictureFromInternet(PictureBatchReq pictureBatchReq, User loginUser);

    void checkPictureAuth(Picture picture, User loginUser);

    void batchEditPicture(BatchEditPictureReq batchEditPictureReq, User loginUser);
}
